<?php
/**
 * IMEI 诊断脚本
 * 检查 IMEI 是否存在于数据库中
 */

// 定义应用根目录
define('APP_PATH', __DIR__ . '/application/');
define('RUNTIME_PATH', __DIR__ . '/runtime/');

// 加载 ThinkPHP 框架
require __DIR__ . '/thinkphp/base.php';

use think\Db;

$imei = '861179035726231';

echo "========== IMEI 诊断 ==========\n\n";

// 第一步：测试数据库连接
echo "【第一步】测试数据库连接...\n";
try {
    $result = Db::name('flow_wifi_imei')->count();
    echo "✅ 数据库连接成功\n";
} catch (\Throwable $e) {
    echo "❌ 数据库连接失败: " . $e->getMessage() . "\n";
    exit(1);
}

echo "\n";

// 第二步：检查表是否存在
echo "【第二步】检查表是否存在...\n";
try {
    $tables = Db::query("SHOW TABLES LIKE 'flow_wifi_imei'");
    if (!empty($tables)) {
        echo "✅ 表 flow_wifi_imei 存在\n";
    } else {
        echo "❌ 表 flow_wifi_imei 不存在\n";
        exit(1);
    }
} catch (\Throwable $e) {
    echo "❌ 查询失败: " . $e->getMessage() . "\n";
    exit(1);
}

echo "\n";

// 第三步：检查表中有多少条记录
echo "【第三步】检查表中有多少条记录...\n";
try {
    $count = Db::name('flow_wifi_imei')->count();
    echo "✅ 表中共有 {$count} 条记录\n";
} catch (\Throwable $e) {
    echo "❌ 查询失败: " . $e->getMessage() . "\n";
    exit(1);
}

echo "\n";

// 第四步：检查指定 IMEI 是否存在
echo "【第四步】检查 IMEI '{$imei}' 是否存在...\n";
try {
    $record = Db::name('flow_wifi_imei')->where('IMEI', $imei)->find();
    if ($record) {
        echo "✅ IMEI 存在于数据库\n";
        echo "   记录详情:\n";
        foreach ($record as $key => $value) {
            echo "   - {$key}: {$value}\n";
        }
    } else {
        echo "❌ IMEI 不存在于数据库\n";
        echo "   这是问题所在！Vendor2 消息会被跳过\n";
        echo "\n   解决方案：\n";
        echo "   1. 先通过其他方式（如 Vendor1 协议）创建这个 IMEI 的记录\n";
        echo "   2. 或者手动在数据库中插入一条记录\n";
        echo "\n   示例 SQL:\n";
        echo "   INSERT INTO flow_wifi_imei (IMEI, mac, update_time) VALUES ('{$imei}', '{$imei}', NOW());\n";
    }
} catch (\Throwable $e) {
    echo "❌ 查询失败: " . $e->getMessage() . "\n";
    exit(1);
}

echo "\n";

// 第五步：列出前 5 条记录
echo "【第五步】列出表中前 5 条记录...\n";
try {
    $records = Db::name('flow_wifi_imei')->limit(5)->select();
    if (!empty($records)) {
        echo "✅ 找到 " . count($records) . " 条记录\n";
        foreach ($records as $index => $record) {
            echo "   记录 " . ($index + 1) . ": IMEI=" . $record['IMEI'] . ", MAC=" . $record['mac'] . "\n";
        }
    } else {
        echo "❌ 表中没有记录\n";
    }
} catch (\Throwable $e) {
    echo "❌ 查询失败: " . $e->getMessage() . "\n";
    exit(1);
}

echo "\n========== 诊断完成 ==========\n";

